'''
基于class的线程使用
'''
import threading
import time


class MyThread(threading.Thread):
    '''必须实现run()'''    
    def run(self):
        print('===>> %s run!' % self._name)
        time.sleep(2)
        self.login()
        self.register()
        print('===>> run completed!')
        # 在run中调用class的其他函数，可以保证多任务不被破坏。
        # 若用实例对象，下文的thread调用将会返回单任务的执行

    # 其他自定义方法
    def login(self):
        print('===>> %s login run!' % self._name)

    def register(self):
        print('===>> %s register run!' % self._name)


if __name__ == "__main__":
    thread_1 = MyThread(name='thread_1')
    thread_2 = MyThread(name='thread_2')
    # start()内部自动调用run()
    thread_1.start()
    # 下面的调用方式，会以单任务的形式执行 | 一般不要这么使用！！！
    # thread_1.login()
    # thread_1.register()
    thread_2.start()
    # 下面的调用方式，会以单任务的形式执行 | 一般不要这么使用！！！
    # thread_2.login()
    # thread_2.register()